package NMID.week01;

/**
 * 1. >> 表示右移，即 ： 该数为正，高位补数 0 ，如果为负数，高位补数 1
 * 2.  >>> 无符号右移，也叫逻辑右移，即 ：该数为正，高位补数 0 ，如果为负数，高位补数0
 * 二、结论
 * 1. 正数： 右移 和 无符号右移 答案一致
 * 2. 负数：不一致
 *      2.1 右移依旧减半，
 *      2.2 无符号右移会产生一个很大的正数
 */
public class 右移无符号右移的区别 {
    public static void main(String[] args) {
        int a1 = 2;//2 的 二进制是 0000 0010
        int b1 = a1>>1;//2 向右移动，高位由0补齐， b1 0000 0001
        System.out.println("2>>1 后： "+b1);
        int a2 = -2 ; //-2 的 二进制是 1111 1101 ，
        int b2 = a2>>1;//如果为负数，高位补数 1： b2 1111 1110
        System.out.println("-2>>1 后："+b2);
        System.out.println("--------1.正数的>>和>>>一致的,都是减半--------------");
        System.out.println("---------------2. 负数：不一致--------------\n" +
                " *      2.1 右移依旧减半，\n" +
                " *      2.2 无符号右移会产生一个很大的正数");
        int a3 = -2;
        int b3 = a3>>>1;
        System.out.println("-2>>>1 的结果："+b3);
    }
}
